SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TMDOCU_PROV_Q32]      
/*-------------------------------------------------------*/      
/*---Empresa               OFISIS S.A.                --*/      
/*---PROVnte               SANTILLANA                 --*/      
/*---Sistema               Tesoreria                  --*/      
/*---M½dulo                Empresa                    --*/      
/*---Programa              KARDEX PROVEEDOR        --*/      
/*---Script                SP_TMDOCU_PROV_PROV_Q32.sql     --*/      
/*---Nombre SP             SP_TMDOCU_PROV_Q32         --*/      
/*---Desarrollado por      Reynaldo Menacho Luyo      --*/      
/*---Fecha Creaci½n        03/01/2001                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi¢n              : 2005                       --*/      
/*---Invoca a SP                                      --*/      
/*-------------------------------------------------------*/      
        
/*-------------------------------------------------------*/      
/*---Modificado 1 por           --*/      
/*---Fecha Modificaci½n       --*/       
/*---Detalle Modificaci½n       --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TMDOCU_PROV_Q32                      --*/      
/*---Grant Execute on SP_TMDOCU_PROV_Q32 to public         --*/       
/*--- EXECUTE SP_TMDOCU_PROV_Q32 "Where TMDOCP_GENE.CO_EMPR in ( '01') And TMDOCP_GENE.CO_PROV >= '20100049181' 
	  And TMDOCP_GENE.CO_PROV <= '20100049181' And TMDOCP_GENE.CO_TIPO_DOCU in ( 'ANT')", '', 'E',        
'2009-01-01',' 2010-07-14','2010-07-14', 'P', 'D', '1'   --*/      
/*-------------------------------------------------------*/      
      
@ISCA_WHER_0001 VARCHAR(255),      
@ISCA_WHER_0002 VARCHAR(255),      
@ISTI_FECH TD_VC_001,      
@IDFE_INIC  TD_DT_001,      
@IDFE_FINA  TD_DT_001,      
@IDFE_CANC  TD_DT_001,      
@ISTI_AUXI_PROV TD_VC_001,      
@ISTI_REPO  TD_VC_001,      
@ISTI_ORDE  TD_VC_001      
       
      
      
AS      
      
 CREATE TABLE #TWDOCU_PROV_Q32_1       
 ( CO_EMPR      varchar(3) NULL,      
   CO_TIPO_DOCU varchar(3)  NULL ,      
   NU_DOCU_PROV varchar(20)  NULL,      
   CO_PROV varchar(20) NULL ,      
   FE_EMIS datetime NULL,      
   FE_VENC datetime NULL,      
   CO_MONE varchar(03) NULL,      
   FA_TIPO_CAMB numeric(9,4) NULL,      
   IM_CXPA numeric(16,4) NULL,      
   CO_CAJA varchar(8) NULL,      
   NU_AMAR varchar(10) NULL,      
   NU_CANJ varchar(8) NULL,      
   NU_RENO varchar(8) NULL,      
   CO_BANC varchar(3) NULL,      
   NU_CNTA_BANC varchar(100) NULL,          
   NU_COMP_CABA varchar(20) NULL,       
   IM_PAGO numeric(16,4) NULL,      
   TI_DETA varchar(1) NULL)      
      
CREATE TABLE #TWDOCU_PROV_Q32_2       
 ( CO_EMPR      varchar(3) NULL,      
   CO_PROV varchar(20) NULL,       
   CO_MONE varchar(3) NULL,      
   IM_SAIN numeric(16,4) NULL)      
      
CREATE INDEX IX_#TWDOCU_PROV_Q32_1_1                                             
ON #TWDOCU_PROV_Q32_1 (CO_EMPR, CO_PROV, CO_MONE)                                                              
WITH FILLFACTOR = 70                                    
                              
CREATE INDEX IX_#TWDOCU_PROV_Q32_1_2                                             
ON #TWDOCU_PROV_Q32_1 (CO_EMPR, CO_PROV, NU_CANJ, FE_EMIS)                                                              
WITH FILLFACTOR = 70                                    
                              
                              
CREATE INDEX IX_#TWDOCU_PROV_Q32_1_3                                             
ON #TWDOCU_PROV_Q32_1 (CO_EMPR, CO_PROV, NU_RENO, FE_EMIS)                                                              
WITH FILLFACTOR = 70                       
                                                              
CREATE INDEX IX_#TWDOCU_PROV_Q32_1_4                                             
ON #TWDOCU_PROV_Q32_1 (FE_EMIS, CO_PROV, CO_EMPR)                                                              
WITH FILLFACTOR = 70                                                              
                    
CREATE INDEX IX_#TWDOCU_PROV_Q32_1_5                                             
ON #TWDOCU_PROV_Q32_1 (CO_EMPR, CO_MONE)                                   
WITH FILLFACTOR = 70                            
      
      
DECLARE       
      
@VSDE_LETR   TD_VC_100,      
@VSCO_EMPR TD_VC_002,      
@VSCO_PROV   TD_VC_020,      
@VSNU_CANJ   TD_VC_008,      
@VSNU_RENO   TD_VC_008,      
@VSTI_ORDE   TD_VC_050,      
--@VSDE_CODI  VARCHAR(500)      
      
@CSCO_TIPO_DOCU TD_VC_003,      
@CSCO_EMPR   TD_VC_002,      
@CSCO_PROV   TD_VC_020,      
@CSNU_CANJ   TD_VC_008,      
@CSNU_RENO   TD_VC_008,      
@CSNU_LETR_PROV TD_VC_008,      
      
@OSTI_DOCU_LETR TD_VC_003,      
@OSTI_DOCU_NCPR TD_VC_003,      
@OSTI_DOCU_CRET TD_VC_003,      
@OSTI_DOCU_OCMP TD_VC_003,      
@VSFE_INIC TD_VC_010,      
@VSFE_FINA TD_VC_010      
      
      
IF @ISTI_ORDE = '1'      
 SELECT @VSTI_ORDE = ' ORDER BY 25, 1, 24, 4, 23, 5, 6, 26, 7 '      
ELSE      
 SELECT @VSTI_ORDE = ' ORDER BY 25, 1, 24, 4, 23, 26, 5, 6, 7 '      
      
Select  @VSFE_INIC = Convert (varchar(10), @IDFE_INIC, 103),      
 @VSFE_FINA = Convert (varchar(10), @IDFE_FINA, 103)      
      
IF LEN(RTRIM(@ISCA_WHER_0001)) = 0      
 SELECT @ISCA_WHER_0001 = ' Where 1 = 1 '      
      
      
EXEC SP_TTDOCU_CNTB_Q01 4, @OSTI_DOCU_NCPR OUTPUT      
EXEC SP_TTDOCU_CNTB_Q01 6, @OSTI_DOCU_LETR OUTPUT      
EXEC SP_TTDOCU_CNTB_Q01 22, @OSTI_DOCU_CRET OUTPUT      
      
-- TIPOS DE DETALLE(TI_DETA = '1' AL '7')      
--1.- DOCS EMITIDOS EN ESOS MESES           
--2.- PAGOS BANCOS / CAJA      
--3.- APLICACIONES DE NCR A DOCUMENTOS      
--4.- APLICACIONES DE OCM A DOCUMENTOS      
--5.- CANJES      
--6.- RENOVACIONES      
      
--1.- DOCS EMITIDOS EN ESOS MESES      
IF @ISTI_FECH = 'E'      
      
  EXECUTE('      
  INSERT INTO #TWDOCU_PROV_Q32_1       
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,      
CO_MONE, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)Select TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU , TMDOCP_GENE.NU_DOCU_PROV ,        
TMDOCP_GENE.CO_PROV, TMDOCP_GENE.FE_EMIS, TMDOCP_GENE.FE_VENC,      
  TMDOCP_GENE.CO_MONE, TMDOCP_GENE.FA_TIPO_CAMB,      
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) * TMDOCP_GENE.IM_TOTA,      
  "1"      
  From  TMDOCP_GENE, TTDOCU_CNTB ' + @ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
  And TMDOCP_GENE.FE_EMIS <= "' +  @IDFE_FINA + '"      
  And TMDOCP_GENE.CO_ESTA_DOCU != "ANU"      
  And TMDOCP_GENE.CO_TIPO_DOCU != "OCM"       
  And TMDOCP_GENE.CO_TIPO_DOCU != "OSR"      
  And TMDOCP_GENE.CO_TIPO_DOCU != "ANT"       
  AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU      
  And TTDOCU_CNTB.ST_GENE_CXPA = "S" ')      
      
      
IF @ISTI_FECH = 'V'      
EXECUTE('      
  INSERT INTO #TWDOCU_PROV_Q32_1       
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,      
  CO_MONE, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)      
      
  Select TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU , TMDOCP_GENE.NU_DOCU_PROV , TMDOCP_GENE.CO_PROV, TMDOCP_GENE.FE_EMIS,        
TMDOCP_GENE.FE_VENC,      
  TMDOCP_GENE.CO_MONE, TMDOCP_GENE.FA_TIPO_CAMB,      
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) * TMDOCP_GENE.IM_TOTA,      
  "1"      
  From  TMDOCP_GENE, TTDOCU_CNTB "' + @ISCA_WHER_0001 + @ISCA_WHER_0002 + '"      
  And TMDOCP_GENE.FE_VENC <= "' +  @IDFE_FINA + '"      
  And TMDOCP_GENE.CO_ESTA_DOCU != "ANU"      
  And TMDOCP_GENE.CO_TIPO_DOCU != "OCM"       
  And TMDOCP_GENE.CO_TIPO_DOCU != "OSR"      
  And TMDOCP_GENE.CO_TIPO_DOCU != "ANT"       
  AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU      
  And TTDOCU_CNTB.ST_GENE_CXPA = "S" ')      
      
      
IF @ISTI_FECH = 'R'      
 EXECUTE('      
  INSERT INTO #TWDOCU_PROV_Q32_1       
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC,      
  CO_MONE, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)      
      
  Select TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU , TMDOCP_GENE.NU_DOCU_PROV , TMDOCP_GENE.CO_PROV, TMDOCP_GENE.FE_EMIS,        
TMDOCP_GENE.FE_VENC,      
  TMDOCP_GENE.CO_MONE, TMDOCP_GENE.FA_TIPO_CAMB,      
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) * TMDOCP_GENE.IM_TOTA,      
  "1"      
  From  TMDOCP_GENE, TTDOCU_CNTB ' + @ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
  And TMDOCP_GENE.FE_REGI_COMP <= "' +  @IDFE_FINA + '"      
  And TMDOCP_GENE.CO_ESTA_DOCU != "ANU"      
  And TMDOCP_GENE.CO_TIPO_DOCU != "OCM"       
  And TMDOCP_GENE.CO_TIPO_DOCU != "OSR"      
  And TMDOCP_GENE.CO_TIPO_DOCU != "ANT"       
  AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU      
  And TTDOCU_CNTB.ST_GENE_CXPA = "S" ')      
      
--SELECT * INTO /*SELECT * FROM*/ TTPRUEBA FROM TMDOCU_PROV      
--2.- PAGOS BANCOS / CAJA      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, CO_BANC, NU_CNTA_BANC, NU_COMP_CABA)      
Select TDMOVI_BANC.CO_EMPR, TDMOVI_BANC.TI_DOCU_ENTI, TDMOVI_BANC.NU_DOCU_ENTI, TDMOVI_BANC.CO_ENTI, TCMOVI_BANC.FE_OPER,      
TMDOCP_GENE.CO_MONE, TCMOVI_BANC.FA_TIPO_CAMB,      
/*( ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") )*PatIndex(TDMOVI_BANC.TI_MOVI_BANC,"E")+      
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") )*PatIndex(TDMOVI_BANC.TI_MOVI_BANC,"I")) */      
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N")) *       
( PatIndex(TDMOVI_BANC.ST_CIER_DOCU, "N") * TDMOVI_BANC.IM_CONV_DOCU +      
  PatIndex(TDMOVI_BANC.ST_CIER_DOCU, "S") * TDMOVI_BANC.IM_SALD_DOCU ),      
"2", TCMOVI_BANC.CO_BANC, TCMOVI_BANC.NU_CNTA_BANC, TCMOVI_BANC.NU_COMP_BANC      
From  TDMOVI_BANC, TCMOVI_BANC, TMCNTA_BANC, TMDOCP_GENE, TTDOCU_CNTB ' +      
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '       
And    TDMOVI_BANC.TI_ENTI = "' + @ISTI_AUXI_PROV + '"      
And    TCMOVI_BANC.FE_OPER  <= "' + @IDFE_CANC + '"      
And    TCMOVI_BANC.TI_SITU = "ACT"       
And    RTRIM(ISNULL(TDMOVI_BANC.CO_CNTA_EMPR, "")) = ""        
And    TDMOVI_BANC.CO_EMPR = TCMOVI_BANC.CO_EMPR        
And    TDMOVI_BANC.CO_UNID_CONC = TCMOVI_BANC.CO_UNID_CONC      
And    TDMOVI_BANC.CO_BANC = TCMOVI_BANC.CO_BANC        
And    TDMOVI_BANC.NU_CNTA_BANC  = TCMOVI_BANC.NU_CNTA_BANC        
And    TDMOVI_BANC.AA_BNCO = TCMOVI_BANC.AA_BNCO      
And    TDMOVI_BANC.MM_BNCO = TCMOVI_BANC.MM_BNCO       
And    TDMOVI_BANC.TI_MOVI_BANC  = TCMOVI_BANC.TI_MOVI_BANC       
And    TDMOVI_BANC.NU_COMP_BANC = TCMOVI_BANC.NU_COMP_BANC      
And    TDMOVI_BANC.CO_EMPR = TMCNTA_BANC.CO_EMPR        
And    TDMOVI_BANC.CO_BANC = TMCNTA_BANC.CO_BANC        
And    TDMOVI_BANC.NU_CNTA_BANC  = TMCNTA_BANC.NU_CNTA_BANC      
AND    TDMOVI_BANC.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND    TDMOVI_BANC.CO_ENTI = TMDOCP_GENE.CO_PROV      
AND    TDMOVI_BANC.TI_DOCU_ENTI = TMDOCP_GENE.CO_TIPO_DOCU      
AND    TDMOVI_BANC.NU_DOCU_ENTI = TMDOCP_GENE.NU_DOCU_PROV      
AND    TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU' )      
      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, CO_CAJA, NU_COMP_CABA)      
Select TDMOVI_CAJA.CO_EMPR, TDMOVI_CAJA.TI_DOCU_ENTI, TDMOVI_CAJA.NU_DOCU_ENTI,       
TDMOVI_CAJA.CO_ENTI, TCMOVI_CAJA.FE_OPER,      
TMDOCP_GENE.CO_MONE, TCMOVI_CAJA.FA_TIPO_CAMB,      
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N")) *       
( PatIndex(TDMOVI_CAJA.ST_CIER_DOCU, "N") * TDMOVI_CAJA.IM_CONV_DOCU +      
  PatIndex(TDMOVI_CAJA.ST_CIER_DOCU, "S") * TDMOVI_CAJA.IM_SALD_DOCU ),      
"2", TCMOVI_CAJA.CO_CAJA, TCMOVI_CAJA.NU_COMP_CAJA      
From   TDMOVI_CAJA, TCMOVI_CAJA , TMCAJA , TMDOCP_GENE, TTDOCU_CNTB ' +      
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '       
And    TDMOVI_CAJA.TI_ENTI = "' + @ISTI_AUXI_PROV + '"      
And    TCMOVI_CAJA.FE_OPER  <= "' + @IDFE_CANC + '"      
And    TCMOVI_CAJA.TI_SITU = "ACT"       
And    RTRIM(ISNULL(TDMOVI_CAJA.CO_CNTA_EMPR, "")) = ""          
And    TDMOVI_CAJA.CO_EMPR = TCMOVI_CAJA.CO_EMPR        
And    TDMOVI_CAJA.CO_CAJA = TCMOVI_CAJA.CO_CAJA      
And    TDMOVI_CAJA.AA_CAJA = TCMOVI_CAJA.AA_CAJA      
And    TDMOVI_CAJA.MM_CAJA = TCMOVI_CAJA.MM_CAJA       
And    TDMOVI_CAJA.TI_MOVI = TCMOVI_CAJA.TI_MOVI      
And    TDMOVI_CAJA.NU_COMP_CAJA = TCMOVI_CAJA.NU_COMP_CAJA      
And    TDMOVI_CAJA.CO_EMPR = TMCAJA.CO_EMPR        
And    TDMOVI_CAJA.CO_CAJA = TMCAJA.CO_CAJA      
And    TDMOVI_CAJA.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND    TDMOVI_CAJA.CO_ENTI = TMDOCP_GENE.CO_PROV      
AND    TDMOVI_CAJA.TI_DOCU_ENTI = TMDOCP_GENE.CO_TIPO_DOCU      
And    TDMOVI_CAJA.NU_DOCU_ENTI = TMDOCP_GENE.NU_DOCU_PROV      
AND    TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ' )      
      
      
--3.- APLICACIONES NCR A DOCUMENTOS      
-- DOCUMENTOS      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_AMAR)      
SELECT TCAMAR_NCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCAMAR_NCPR.CO_PROV, TCAMAR_NCPR.FE_AMAR,      
TMDOCP_GENE.CO_MONE, TCAMAR_NCPR.FA_TIPO_CAMB,      
(PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *      
(PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_NCPR.IM_PAGO_CDES,0) +       
PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_NCPR.IM_SALD_CDES,0)),      
"3", TCAMAR_NCPR.NU_AMAR      
From   TCAMAR_NCPR , TDAMAR_NCPR, TMDOCP_GENE, TTDOCU_CNTB ' +      
 @ISCA_WHER_0001 + @ISCA_WHER_0002 + '       
AND TMDOCP_GENE.CO_TIPO_DOCU != "' + @OSTI_DOCU_NCPR + '"      
And TCAMAR_NCPR.FE_AMAR  <= "' + @IDFE_CANC + '"      
AND TCAMAR_NCPR.TI_SITU = "ACT"       
AND TCAMAR_NCPR.CO_EMPR = TDAMAR_NCPR.CO_EMPR      
AND TCAMAR_NCPR.CO_UNID_CONC = TDAMAR_NCPR.CO_UNID_CONC      
AND TCAMAR_NCPR.NU_AMAR = TDAMAR_NCPR.NU_AMAR      
AND TCAMAR_NCPR.FE_AMAR = TDAMAR_NCPR.FE_AMAR      
AND TCAMAR_NCPR.CO_PROV = TMDOCP_GENE.CO_PROV      
AND TDAMAR_NCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND TDAMAR_NCPR.CO_TIDO_DEST = TMDOCP_GENE.CO_TIPO_DOCU      
AND TDAMAR_NCPR.NU_DOCU_DEST = TMDOCP_GENE.NU_DOCU_PROV      
AND (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")      
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"       
AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU      
AND TTDOCU_CNTB.ST_DOCU_0004 = "N"')      
      
      
-- NOTAS DE CREDITO APLICADAS       
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_AMAR)      
SELECT TCAMAR_NCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCAMAR_NCPR.CO_PROV, TCAMAR_NCPR.FE_AMAR,      
TMDOCP_GENE.CO_MONE, TCAMAR_NCPR.FA_TIPO_CAMB,      
(PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N"      
) ) *       
(PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_NCPR.IM_PAGO_CORI,0) +       
PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_NCPR.IM_SALD_CORI,0)),      
"3", TCAMAR_NCPR.NU_AMAR      
From   TCAMAR_NCPR , TDAMAR_NCPR, TMDOCP_GENE, TTDOCU_CNTB ' +      
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
AND TCAMAR_NCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND TMDOCP_GENE.CO_TIPO_DOCU = "' + @OSTI_DOCU_NCPR + '"      
And TCAMAR_NCPR.FE_AMAR  <= "' + @IDFE_CANC + '"      
AND     TCAMAR_NCPR.TI_SITU = "ACT"      
AND    TDAMAR_NCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU       
AND     TDAMAR_NCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV      
AND     TCAMAR_NCPR.CO_EMPR = TDAMAR_NCPR.CO_EMPR      
AND     TCAMAR_NCPR.CO_UNID_CONC = TDAMAR_NCPR.CO_UNID_CONC      
AND     TCAMAR_NCPR.NU_AMAR = TDAMAR_NCPR.NU_AMAR      
AND     TCAMAR_NCPR.FE_AMAR = TDAMAR_NCPR.FE_AMAR      
AND     TDAMAR_NCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND     TCAMAR_NCPR.CO_PROV = TMDOCP_GENE.CO_PROV      
AND     TDAMAR_NCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU      
AND     TDAMAR_NCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV      
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"       
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU      
AND     TTDOCU_CNTB.ST_DOCU_0004 = "S"')      
      
--4.- APLICACIONES OCM Y OSR A DOCUMENTOS      
      
-- DOCUMENTOS      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_AMAR)      
SELECT TCAMAR_OCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TDAMAR_OCPR.CO_ENTI, TCAMAR_OCPR.FE_AMAR,      
TMDOCP_GENE.CO_MONE, TCAMAR_OCPR.FA_TIPO_CAMB, (PATINDEX(TDAMAR_OCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_OCPR.IM_PAGO_DEST,0) +       
 PATINDEX(TDAMAR_OCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_OCPR.IM_SALD_DEST,0)),      
"4", TCAMAR_OCPR.NU_AMAR      
From   TCAMAR_OCPR , TDAMAR_OCPR, TMDOCP_GENE, TTDOCU_CNTB ' +       
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
And     TCAMAR_OCPR.FE_AMAR  <= "' + @IDFE_CANC + '"      
AND     TCAMAR_OCPR.TI_SITU = "ACT"      
AND     TCAMAR_OCPR.CO_EMPR = TDAMAR_OCPR.CO_EMPR      
AND     TCAMAR_OCPR.CO_UNID_CONC = TDAMAR_OCPR.CO_UNID_CONC      
AND     TCAMAR_OCPR.NU_AMAR = TDAMAR_OCPR.NU_AMAR      
AND     TCAMAR_OCPR.FE_AMAR = TDAMAR_OCPR.FE_AMAR      
AND     TDAMAR_OCPR.CO_ENTI = TMDOCP_GENE.CO_PROV      
AND     TDAMAR_OCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND     TDAMAR_OCPR.CO_TIDO_DEST = TMDOCP_GENE.CO_TIPO_DOCU      
AND     TDAMAR_OCPR.NU_DOCU_DEST = TMDOCP_GENE.NU_DOCU_PROV      
AND  (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")      
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"       
AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU      
AND TTDOCU_CNTB.ST_DOCU_0008 = "N"      
AND TTDOCU_CNTB.ST_DOCU_0015 = "N"      
AND TTDOCU_CNTB.ST_DOCU_0017 = "N" ')      
      
      
-- ORDENES DE COMPRAS APLICADAS       
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_AMAR)      
SELECT TCAMAR_OCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCAMAR_OCPR.CO_PROV, TCAMAR_OCPR.FE_AMAR,      
TMDOCP_GENE.CO_MONE, TCAMAR_OCPR.FA_TIPO_CAMB, -TDAMAR_OCPR.IM_PAGO_ORIG,      
"4", TCAMAR_OCPR.NU_AMAR      
From   TCAMAR_OCPR , TDAMAR_OCPR, TMDOCP_GENE, TTDOCU_CNTB ' +      
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
AND  TCAMAR_OCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR      
And    TCAMAR_OCPR.FE_AMAR  <= "' + @IDFE_CANC + '"      
AND    TCAMAR_OCPR.TI_SITU = "ACT"      
AND    TDAMAR_OCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU       
AND    TDAMAR_OCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV      
AND    TCAMAR_OCPR.CO_EMPR = TDAMAR_OCPR.CO_EMPR      
AND    TCAMAR_OCPR.CO_UNID_CONC = TDAMAR_OCPR.CO_UNID_CONC      
AND    TCAMAR_OCPR.NU_AMAR = TDAMAR_OCPR.NU_AMAR      
AND    TCAMAR_OCPR.FE_AMAR = TDAMAR_OCPR.FE_AMAR      
AND    TDAMAR_OCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND    TCAMAR_OCPR.CO_PROV = TMDOCP_GENE.CO_PROV      
AND    TDAMAR_OCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU      
AND    TDAMAR_OCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV      
AND  TMDOCP_GENE.CO_ESTA_DOCU != "ANU"       
AND   TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU       
AND (TTDOCU_CNTB.ST_DOCU_0008 = "S"      
OR TTDOCU_CNTB.ST_DOCU_0015 = "S"      
OR TTDOCU_CNTB.ST_DOCU_0017 = "S") ' )      
      
--5.- CANJES      
      
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE CANJEAN, NO LAS LETRAS GENERADAS      
EXECUTE('  
INSERT INTO #TWDOCU_PROV_Q32_1   
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,   
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_CANJ)  
SELECT TCCANJ_PROV.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCCANJ_PROV.CO_PROV, TCCANJ_PROV.FE_CANJ,   
TMDOCP_GENE.CO_MONE, TCCANJ_PROV.FA_TIPO_CAMB,  
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *  
( PatIndex(TDCANJ_PROV.ST_CIER_DOCU, "N") *  TDCANJ_PROV.IM_CANJ_MDOC +   
  PatIndex(TDCANJ_PROV.ST_CIER_DOCU, "S") *  TDCANJ_PROV.IM_SALD_DOCU ),  
"5", TCCANJ_PROV.NU_CANJ  
From  TCCANJ_PROV , TDCANJ_PROV, TMDOCP_GENE, TTDOCU_CNTB ' +   
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '  
AND TMDOCP_GENE.CO_TIPO_DOCU != "' + @OSTI_DOCU_CRET + '"  
And TCCANJ_PROV.CO_EMPR =   TMDOCP_GENE.CO_EMPR  
And    TCCANJ_PROV.FE_CANJ  <= "' + @IDFE_CANC + '"  
AND    TCCANJ_PROV.TI_SITU != "ANU"  
AND    TCCANJ_PROV.TI_SITU != "EXT"  
AND    TCCANJ_PROV.CO_EMPR = TDCANJ_PROV.CO_EMPR  
AND    TCCANJ_PROV.CO_UNID_CONC = TDCANJ_PROV.CO_UNID_CONC  
AND    TCCANJ_PROV.CO_PROV = TDCANJ_PROV.CO_PROV  
AND    TCCANJ_PROV.NU_CANJ = TDCANJ_PROV.NU_CANJ  
AND    TCCANJ_PROV.FE_CANJ = TDCANJ_PROV.FE_CANJ  
AND    TDCANJ_PROV.CO_PROV = TMDOCP_GENE.CO_PROV  
AND    TDCANJ_PROV.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU   
AND    TDCANJ_PROV.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV   
AND (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")  
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"   
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')    
      
      
--6.- RENOVACIONES      
      
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE RENUEVAN, NO LAS LETRAS GENERADAS      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_RENO)      
SELECT TCRENO_PROV.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCRENO_PROV.CO_PROV, TCRENO_PROV.FE_RENO,      
TMDOCP_GENE.CO_MONE, TCRENO_PROV.FA_TIPO_CAMB,      
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *       
( PatIndex(TDRENO_PROV.ST_CIER_DOCU, "N") *  TDRENO_PROV.IM_RENO_MDOC +       
  PatIndex(TDRENO_PROV.ST_CIER_DOCU, "S") *  TDRENO_PROV.IM_SALD_DOCU ),      
"6", TCRENO_PROV.NU_RENO      
From  TCRENO_PROV, TDRENO_PROV, TMDOCP_GENE, TTDOCU_CNTB ' +      
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
AND TCRENO_PROV.CO_EMPR =   TMDOCP_GENE.CO_EMPR      
And    TCRENO_PROV.FE_RENO  <= "' + @IDFE_CANC + '"      
AND    TCRENO_PROV.TI_SITU != "ANU"      
AND    TCRENO_PROV.TI_SITU != "EXT"      
AND    TCRENO_PROV.CO_EMPR = TDRENO_PROV.CO_EMPR      
AND    TCRENO_PROV.CO_UNID_CONC = TDRENO_PROV.CO_UNID_CONC      
AND    TCRENO_PROV.CO_PROV = TDRENO_PROV.CO_PROV      
AND    TCRENO_PROV.NU_RENO = TDRENO_PROV.NU_RENO      
AND    TCRENO_PROV.FE_RENO = TDRENO_PROV.FE_RENO      
AND    TDRENO_PROV.CO_PROV = TMDOCP_GENE.CO_PROV      
AND    TDRENO_PROV.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU       
AND    TDRENO_PROV.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV       
AND  TMDOCP_GENE.CO_ESTA_DOCU != "ANU"       
AND (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")      
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')      
      
      
--7.- DEVOLUCION DE ANTICIPOS      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, CO_BANC, NU_CNTA_BANC, NU_COMP_CABA)      
Select TDDEVO_ANTC.CO_EMPR, TDDEVO_ANTC.CO_TIPO_DOCU, TDDEVO_ANTC.NU_DOCU_PROV, TMDOCP_GENE.CO_PROV, TCMOVI_BANC.FE_OPER,      
TMDOCP_GENE.CO_MONE, TCMOVI_BANC.FA_TIPO_CAMB, -TDDEVO_ANTC.IM_DEVO,       
"7", TCMOVI_BANC.CO_BANC, TCMOVI_BANC.NU_CNTA_BANC, TCMOVI_BANC.NU_COMP_BANC      
From  TDDEVO_ANTC, TCMOVI_BANC, TMCNTA_BANC, TMDOCP_GENE, TTDOCU_CNTB ' +      
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
And  TCMOVI_BANC.FE_OPER  <= "' + @IDFE_CANC + '"      
And  TCMOVI_BANC.TI_SITU = "ACT"       
And    TDDEVO_ANTC.CO_EMPR = TCMOVI_BANC.CO_EMPR        
And    TDDEVO_ANTC.CO_BANC = TCMOVI_BANC.CO_BANC        
And    TDDEVO_ANTC.NU_CNTA_BANC  = TCMOVI_BANC.NU_CNTA_BANC        
And    TDDEVO_ANTC.AA_BNCO = TCMOVI_BANC.AA_BNCO      
And    TDDEVO_ANTC.MM_BNCO = TCMOVI_BANC.MM_BNCO       
And    TDDEVO_ANTC.TI_MOVI_BANC  = TCMOVI_BANC.TI_MOVI_BANC       
And    TDDEVO_ANTC.NU_COMP_BANC = TCMOVI_BANC.NU_COMP_BANC      
And    TDDEVO_ANTC.CO_EMPR = TMCNTA_BANC.CO_EMPR        
And    TDDEVO_ANTC.CO_BANC = TMCNTA_BANC.CO_BANC        
And    TDDEVO_ANTC.NU_CNTA_BANC  = TMCNTA_BANC.NU_CNTA_BANC      
AND  TDDEVO_ANTC.CO_EMPR = TMDOCP_GENE.CO_EMPR      
AND  TCMOVI_BANC.CO_ENTI = TMDOCP_GENE.CO_PROV      
AND   TDDEVO_ANTC.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU      
AND   TDDEVO_ANTC.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV      
AND   TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')  



--7.5.- DEVOLUCION DE ANTICIPOS CAJA             
EXECUTE('              
INSERT INTO #TWDOCU_PROV_Q32_1               
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, CO_CAJA, NU_COMP_CABA) 
     
Select TDDEVA_CAJP.CO_EMPR, TDDEVA_CAJP.CO_TIPO_DOCU, TDDEVA_CAJP.NU_DOCU_PROV, TMDOCP_GENE.CO_PROV, TCMOVI_CAJA.FE_OPER,      
TMDOCP_GENE.CO_MONE, TCMOVI_CAJA.FA_TIPO_CAMB, -TDDEVA_CAJP.IM_DEVO,       
"7", TCMOVI_CAJA.CO_CAJA, TCMOVI_CAJA.NU_COMP_CAJA 
            
From  TDDEVA_CAJP, TCMOVI_CAJA, TMCAJA, TMDOCP_GENE, TTDOCU_CNTB ' +               
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '              
And  TCMOVI_CAJA.FE_OPER  <= "' + @IDFE_CANC + '"              
And  TCMOVI_CAJA.TI_SITU = "ACT"               
And  TDDEVA_CAJP.CO_EMPR = TCMOVI_CAJA.CO_EMPR          
And  TDDEVA_CAJP.CO_CAJA = TCMOVI_CAJA.CO_CAJA          
And  TDDEVA_CAJP.AA_CAJA = TCMOVI_CAJA.AA_CAJA        
And  TDDEVA_CAJP.MM_CAJA = TCMOVI_CAJA.MM_CAJA         
And  TDDEVA_CAJP.TI_MOVI  = TCMOVI_CAJA.TI_MOVI         
And  TDDEVA_CAJP.NU_COMP_CAJA = TCMOVI_CAJA.NU_COMP_CAJA              
And  TDDEVA_CAJP.CO_EMPR = TMCAJA.CO_EMPR          
And  TDDEVA_CAJP.CO_CAJA = TMCAJA.CO_CAJA               
AND  TDDEVA_CAJP.CO_EMPR = TMDOCP_GENE.CO_EMPR              
AND  TCMOVI_CAJA.CO_ENTI = TMDOCP_GENE.CO_PROV              
AND  TDDEVA_CAJP.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU              
AND  TDDEVA_CAJP.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV              
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')      
      
--8.- PAGOS DE RENDICIONES DE GASTO      
EXECUTE('      
INSERT INTO #TWDOCU_PROV_Q32_1       
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS,       
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA, NU_AMAR)      
      
Select TDREND_GAST.CO_EMPR, TDREND_GAST.CO_TIPO_DOCU, TDREND_GAST.NU_DOCU_PROV, TDREND_GAST.CO_ENTI,        
TCREND_GAST.FE_REND_GAST,      
TMDOCP_GENE.CO_MONE, TDREND_GAST.FA_CAMB_DOCU, TDREND_GAST.IM_DOCU,      
"8", TCREND_GAST.NU_REND_GAST      
From  TDREND_GAST, TCREND_GAST, TMDOCP_GENE, TTDOCU_CNTB ' +       
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '      
And TDREND_GAST.TI_ENTI = "' + @ISTI_AUXI_PROV + '"      
And TCREND_GAST.FE_REND_GAST  <= "' + @IDFE_CANC + '"      
And TCREND_GAST.TI_SITU = "ACT"      
And TDREND_GAST.CO_EMPR = TCREND_GAST.CO_EMPR      
And TDREND_GAST.CO_UNID_CONC = TCREND_GAST.CO_UNID_CONC      
And TDREND_GAST.NU_REND_GAST = TCREND_GAST.NU_REND_GAST      
And TDREND_GAST.FE_REND_GAST = TCREND_GAST.FE_REND_GAST      
And TDREND_GAST.CO_EMPR = TMDOCP_GENE.CO_EMPR      
And TDREND_GAST.CO_ENTI = TMDOCP_GENE.CO_PROV      
And TDREND_GAST.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU      
And TDREND_GAST.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV      
And TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ' )      
      
      
-- SALDOS INICIALES      
INSERT INTO #TWDOCU_PROV_Q32_2(CO_EMPR, CO_PROV, CO_MONE, IM_SAIN)       
SELECT CO_EMPR, CO_PROV, CO_MONE,       
SUM( ISNULL(IM_CXPA, 0) ) - SUM( ISNULL(IM_PAGO, 0) )      
FROM #TWDOCU_PROV_Q32_1      
WHERE FE_EMIS < @IDFE_INIC      
GROUP BY CO_EMPR, CO_PROV, CO_MONE      
      
--SELECT * FROM #TWDOCU_PROV_Q32_1      
--DETALLADO      
IF @ISTI_REPO = 'D'       
BEGIN      
      
 -- DATOS DE LETRAS DE CANJES Y RENOVACIONES      
 SELECT @VSCO_EMPR = ''      
 SELECT @VSCO_PROV = ''      
 SELECT @VSNU_CANJ = ''      
 SELECT @VSDE_LETR = ''      
   DECLARE CU_TWDOCU_PROV_Q32_1 CURSOR FOR      
 Select DISTINCT T1.CO_EMPR, T1.CO_PROV, T1.NU_CANJ, T2.NU_LETR_PROV      
 From  #TWDOCU_PROV_Q32_1 T1, TDCANJ_PROV T2      
 WHERE T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_PROV = T2.CO_PROV      
 AND T1.NU_CANJ = T2.NU_CANJ      
 AND T1.FE_EMIS = T2.FE_CANJ      
 AND T2.NU_LETR_PROV IS NOT NULL      
 AND T1.FE_EMIS >= @IDFE_INIC      
 ORDER BY 1, 2, 3        
      
 Open CU_TWDOCU_PROV_Q32_1      
 Fetch  CU_TWDOCU_PROV_Q32_1 INTO  @CSCO_EMPR, @CSCO_PROV, @CSNU_CANJ, @CSNU_LETR_PROV      
 WHILE @@FETCH_STATUS = 0      
 Begin      
      
  IF @CSCO_EMPR + @CSCO_PROV+ @CSNU_CANJ = @VSCO_EMPR + @VSCO_PROV + @VSNU_CANJ       
   SELECT @VSDE_LETR = RTRIM(@VSDE_LETR) + ', ' + RTRIM(@CSNU_LETR_PROV)      
        
  IF @CSCO_EMPR+@CSCO_PROV+@CSNU_CANJ != @VSCO_EMPR+@VSCO_PROV+@VSNU_CANJ        
  BEGIN      
   IF ISNULL(LEN(@VSDE_LETR),0) > 0       
    UPDATE #TWDOCU_PROV_Q32_1      
    SET NU_CNTA_BANC = @VSDE_LETR    WHERE CO_EMPR = @VSCO_EMPR      
    AND CO_PROV = @VSCO_PROV      
    AND NU_CANJ = @VSNU_CANJ      
    AND FE_EMIS >= @IDFE_INIC      
         
   SELECT @VSDE_LETR = @CSNU_LETR_PROV      
   SELECT @VSCO_EMPR = @CSCO_EMPR      
         SELECT @VSCO_PROV = @CSCO_PROV      
         SELECT @VSNU_CANJ = @CSNU_CANJ      
  END       
  Fetch  CU_TWDOCU_PROV_Q32_1 INTO  @CSCO_EMPR, @CSCO_PROV, @CSNU_CANJ, @CSNU_LETR_PROV      
 End      
 Close CU_TWDOCU_PROV_Q32_1      
 DEALLOCATE CU_TWDOCU_PROV_Q32_1      
      
 UPDATE #TWDOCU_PROV_Q32_1      
 SET NU_CNTA_BANC = @VSDE_LETR      
 WHERE CO_EMPR = @VSCO_EMPR      
 AND CO_PROV = @VSCO_PROV      
 AND NU_CANJ = @VSNU_CANJ      
 AND FE_EMIS >= @IDFE_INIC      
       
 SELECT @VSCO_EMPR = ''      
 SELECT @VSCO_PROV = ''      
 SELECT @VSNU_RENO = ''      
 SELECT @VSDE_LETR = ''      
      
      
 DECLARE CU_TWDOCU_PROV_Q32_2 CURSOR FOR      
 Select DISTINCT T1.CO_EMPR, T1.CO_PROV, T1.NU_RENO, T2.NU_LETR_PROV      
 From  #TWDOCU_PROV_Q32_1 T1, TDRENO_PROV T2      
 WHERE T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_PROV = T2.CO_PROV      
 AND T1.NU_RENO = T2.NU_RENO      
 AND T1.FE_EMIS = T2.FE_RENO      
 AND T2.NU_LETR_PROV IS NOT NULL      
 AND T1.FE_EMIS >= @IDFE_INIC      
 ORDER BY 1, 2, 3      
      
 Open CU_TWDOCU_PROV_Q32_2      
 Fetch  CU_TWDOCU_PROV_Q32_2 INTO  @CSCO_EMPR, @CSCO_PROV, @CSNU_RENO, @CSNU_LETR_PROV      
 WHILE @@FETCH_STATUS = 0      
 Begin      
      
  IF @CSCO_EMPR+@CSCO_PROV+@CSNU_RENO = @VSCO_EMPR+@VSCO_PROV+@VSNU_RENO       
   SELECT @VSDE_LETR = RTRIM(@VSDE_LETR)+', '+RTRIM(@CSNU_LETR_PROV)      
        
      
  IF @CSCO_EMPR+@CSCO_PROV+@CSNU_RENO != @VSCO_EMPR+@VSCO_PROV+@VSNU_RENO       
  BEGIN      
   IF ISNULL(LEN(@VSDE_LETR),0) > 0       
    UPDATE #TWDOCU_PROV_Q32_1      
    SET NU_CNTA_BANC = @VSDE_LETR      
    WHERE CO_EMPR = @VSCO_EMPR      
    AND CO_PROV = @VSCO_PROV      
    AND NU_RENO = @VSNU_RENO      
    AND FE_EMIS >= @IDFE_INIC      
         
   SELECT @VSDE_LETR = @CSNU_LETR_PROV      
   SELECT @VSCO_EMPR = @CSCO_EMPR      
         SELECT @VSCO_PROV = @CSCO_PROV      
         SELECT @VSNU_RENO = @CSNU_RENO      
  END       
  Fetch  CU_TWDOCU_PROV_Q32_2 INTO  @CSCO_EMPR, @CSCO_PROV, @CSNU_RENO, @CSNU_LETR_PROV      
 End      
 Close CU_TWDOCU_PROV_Q32_2      
 DEALLOCATE CU_TWDOCU_PROV_Q32_2      
      
 UPDATE #TWDOCU_PROV_Q32_1      
 SET NU_CNTA_BANC = @VSDE_LETR      
 WHERE CO_EMPR = @VSCO_EMPR      
 AND CO_PROV = @VSCO_PROV      
 AND NU_RENO = @VSNU_RENO      
 AND FE_EMIS >= @IDFE_INIC      
      
-------------------------      
      
 DELETE #TWDOCU_PROV_Q32_1      
 WHERE FE_EMIS < @IDFE_INIC      
      
 EXECUTE('      
      SELECT T1.CO_EMPR,  T2.DE_NOMB, T1.CO_PROV, T4.NO_AUXI,        
  T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_MONE, " ",       
  " ", CONVERT(VARCHAR(10), T1.FE_EMIS, 103), ISNULL( T1.CO_BANC, " "), ISNULL( T1.NU_CNTA_BANC, " "),       
  ISNULL( T1.CO_CAJA, " "), ISNULL( T1.NU_COMP_CABA, " "), ISNULL( T1.NU_AMAR, " "), ISNULL( T1.NU_CANJ, " "),       
  ISNULL( T1.NU_RENO, " "), 0, ISNULL( T1.IM_CXPA, 0 ), ISNULL( T1.IM_PAGO, 0 ),       
  ISNULL( T1.FA_TIPO_CAMB, 0 ), T1.TI_DETA, "1", "1",       
  "1", T1.FE_EMIS      
 FROM #TWDOCU_PROV_Q32_1 T1, TMEMPR T2, TMAUXI_EMPR T4      
 Where T4.TI_AUXI_EMPR =  "' + @ISTI_AUXI_PROV + '"      
 AND T1.FE_EMIS >= CONVERT(DATETIME, "'+ @VSFE_INIC +'", 103)      
 AND T1.FE_EMIS <= CONVERT(DATETIME, "'+ @VSFE_FINA +'", 103)      
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_EMPR = T4.CO_EMPR      
 AND T1.CO_PROV = T4.CO_AUXI_EMPR      
 UNION ALL      
 SELECT T1.CO_EMPR, MAX(T2.DE_NOMB), T1.CO_PROV, MAX(T4.NO_AUXI),        
  " ", " ",  T1.CO_MONE, MAX(T5.SB_MONE),       
  MAX(T5.DE_MONE), " ", " ", " ",        
  " ", " ",  " ", " ",        
  " ", ISNULL( MAX(T3.IM_SAIN), 0 ), SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)),       
  0, "0", "2", "1",       
  "1", NULL      
 FROM #TWDOCU_PROV_Q32_1 T1      
    INNER JOIN TMEMPR T2      
    ON T1.CO_EMPR = T2.CO_EMPR      
    LEFT OUTER JOIN #TWDOCU_PROV_Q32_2 T3      
    ON  T1.CO_EMPR = T3.CO_EMPR      
 And T1.CO_PROV = T3.CO_PROV      
 And T1.CO_MONE = T3.CO_MONE      
    INNER JOIN TMAUXI_EMPR T4      
    ON  T4.TI_AUXI_EMPR = "' + @ISTI_AUXI_PROV + '"        
 AND T1.CO_EMPR = T4.CO_EMPR      
 AND T1.CO_PROV = T4.CO_AUXI_EMPR      
    INNER JOIN TTMONE T5      
 ON T1.CO_MONE = T5.CO_MONE       
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE      
 UNION ALL      
  SELECT T1.CO_EMPR, MAX(T2.DE_NOMB), T1.CO_PROV, MAX(T4.NO_AUXI),        
  " ", " ",  T1.CO_MONE, MAX(T5.SB_MONE),       
  MAX(T5.DE_MONE), " ", " ", " ",        
  " ", " ",  " ", " ",        
  " ", ISNULL( MAX(T1.IM_SAIN), 0 ), 0, 0,       
  0, "0", "2", "1",       
  "1", NULL      
 FROM #TWDOCU_PROV_Q32_2 T1, TMEMPR T2, TMAUXI_EMPR T4, TTMONE T5      
 Where T4.TI_AUXI_EMPR = "' + @ISTI_AUXI_PROV + '"       
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_EMPR = T4.CO_EMPR      
 AND T1.CO_PROV = T4.CO_AUXI_EMPR      
 AND T1.CO_MONE = T5.CO_MONE       
 AND NOT EXISTS (SELECT T3.CO_PROV      
   FROM #TWDOCU_PROV_Q32_1 T3      
   WHERE T1.CO_EMPR = T3.CO_EMPR      
   And T1.CO_PROV = T3.CO_PROV      
   And T1.CO_MONE = T3.CO_MONE )      
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE      
 UNION ALL      
 SELECT T1.CO_EMPR, " ", " ", " ",        
  " ", " ",  T1.CO_MONE, MAX(T5.SB_MONE),       
  MAX(T5.DE_MONE), " ", " ", " ",        
  " ", " ",  " ", " ",        
  " ", ISNULL(MAX(T3.IM_SAIN), 0), SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)),       
  0, "0", "2", "2",       
  "1", NULL      
 FROM #TWDOCU_PROV_Q32_1 T1      
    INNER JOIN TTMONE T5      
    ON T1.CO_MONE = T5.CO_MONE       
    LEFT OUTER JOIN  (SELECT CO_EMPR, CO_MONE,      
        SUM(IM_SAIN) IM_SAIN      
      FROM #TWDOCU_PROV_Q32_2       
      GROUP BY CO_EMPR, CO_MONE)T3      
    ON  T1.CO_EMPR = T3.CO_EMPR      
 And T1.CO_MONE = T3.CO_MONE       
 GROUP BY T1.CO_EMPR, T1.CO_MONE      
 UNION ALL      
 SELECT T1.CO_EMPR, " ", " ", " ",        
  " ", " ",  T1.CO_MONE, MAX(T5.SB_MONE),       
  MAX(T5.DE_MONE), " ", " ", " ",        
  " ", " ",  " ", " ",        
  " ", ISNULL( SUM(T1.IM_SAIN), 0 ), 0, 0,       
  0, "0", "2", "2",       
  "1", NULL      
 FROM #TWDOCU_PROV_Q32_2 T1, TTMONE T5      
 Where T1.CO_MONE = T5.CO_MONE       
 AND NOT EXISTS (SELECT T3.CO_PROV      
   FROM #TWDOCU_PROV_Q32_1 T3      
   WHERE T1.CO_EMPR = T3.CO_EMPR      
   And T1.CO_MONE = T3.CO_MONE )      
 GROUP BY T1.CO_EMPR, T1.CO_MONE      
 UNION ALL      
 SELECT MAX(T1.CO_EMPR), " ", " ", " ",        
  " ", " ",  T1.CO_MONE, MAX(T5.SB_MONE),       
  MAX(T5.DE_MONE), " ", " ", " ",        
  " ", " ", " ", " ",        
  " ", ISNULL(MAX(T3.IM_SAIN), 0), SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)),       
  0, "0", "2", "2",       
  "2", NULL      
 FROM #TWDOCU_PROV_Q32_1 T1      
    INNER JOIN TTMONE T5      
    ON  T1.CO_MONE = T5.CO_MONE      
    LEFT OUTER JOIN (SELECT CO_MONE, SUM(IM_SAIN) IM_SAIN      
      FROM #TWDOCU_PROV_Q32_2       
      GROUP BY CO_MONE)T3      
    ON T1.CO_MONE = T3.CO_MONE       
 GROUP BY T1.CO_MONE       
 UNION ALL      
 SELECT MAX(T1.CO_EMPR), " ", " ", " ",        
  " ", " ",  T1.CO_MONE, MAX(T5.SB_MONE),       
  MAX(T5.DE_MONE), " ", " ", " ",        
  " ", " ",  " ", " ",        
  " ", ISNULL( SUM(T1.IM_SAIN), 0 ), 0, 0,       
  0, "0", "2", "2",       
  "2", NULL      
 FROM #TWDOCU_PROV_Q32_2 T1, TTMONE T5      
 Where T1.CO_MONE = T5.CO_MONE       
 AND NOT EXISTS (SELECT T3.CO_PROV      
   FROM #TWDOCU_PROV_Q32_1 T3      
   WHERE T1.CO_MONE = T3.CO_MONE )      
 GROUP BY T1.CO_MONE ' + @VSTI_ORDE )      
      
      
END      
--CO_EMPR, DE_NOMB, TI_PROV, DE_TIPO_PROV,      
--CO_PROV, NO_CORT_PROV, IM_SAIN_NACI, IM_SAIN_EXTR      
      
      
IF @ISTI_REPO = 'R'       
BEGIN      
      
 DELETE #TWDOCU_PROV_Q32_1      
 WHERE FE_EMIS < @IDFE_INIC      
      
 SELECT T1.CO_EMPR, MAX(T2.DE_NOMB), T1.CO_PROV, MAX(T4.NO_AUXI),        
  T1.CO_MONE, MAX(T5.SB_MONE), MAX(T5.DE_MONE), ISNULL( MAX(T3.IM_SAIN), 0 ),       
  SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), '1', '1'        
 FROM #TWDOCU_PROV_Q32_1 T1      
    INNER JOIN  TMEMPR T2      
    ON T1.CO_EMPR = T2.CO_EMPR      
    LEFT OUTER JOIN #TWDOCU_PROV_Q32_2 T3      
    ON T1.CO_EMPR = T3.CO_EMPR      
 And T1.CO_PROV = T3.CO_PROV      
 And T1.CO_MONE = T3.CO_MONE      
    INNER JOIN TMAUXI_EMPR T4      
    ON T4.TI_AUXI_EMPR = @ISTI_AUXI_PROV      
 AND T1.CO_EMPR = T4.CO_EMPR      
 AND T1.CO_PROV = T4.CO_AUXI_EMPR      
    INNER JOIN TTMONE T5      
    ON T1.CO_MONE = T5.CO_MONE       
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE      
 UNION ALL      
 SELECT T1.CO_EMPR, MAX(T2.DE_NOMB), T1.CO_PROV, MAX(T4.NO_AUXI),        
  T1.CO_MONE, MAX(T5.SB_MONE), MAX(T5.DE_MONE), ISNULL( MAX(T1.IM_SAIN), 0 ),       
  0, 0, '1', '1'        
 FROM #TWDOCU_PROV_Q32_2 T1, TMEMPR T2, TMAUXI_EMPR T4, TTMONE T5      
 Where T4.TI_AUXI_EMPR = @ISTI_AUXI_PROV      
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_EMPR = T4.CO_EMPR      
 AND T1.CO_PROV = T4.CO_AUXI_EMPR      
 AND T1.CO_MONE = T5.CO_MONE       
 AND NOT EXISTS (SELECT T3.CO_PROV      
   FROM #TWDOCU_PROV_Q32_1 T3      
   WHERE T1.CO_EMPR = T3.CO_EMPR      
   And T1.CO_PROV = T3.CO_PROV      
   And T1.CO_MONE = T3.CO_MONE )      
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE      
 UNION ALL      
 SELECT T1.CO_EMPR, '', '', '',        
  T1.CO_MONE, MAX(T5.SB_MONE), MAX(T5.DE_MONE), ISNULL(MAX(T3.IM_SAIN), 0),       
  SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), '2', '1'       
 FROM #TWDOCU_PROV_Q32_1 T1      
    INNER JOIN TTMONE T5      
    ON T1.CO_MONE = T5.CO_MONE       
    LEFT OUTER JOIN  (SELECT CO_EMPR, CO_MONE,      
        SUM(IM_SAIN) IM_SAIN      
      FROM #TWDOCU_PROV_Q32_2       
      GROUP BY CO_EMPR, CO_MONE)T3      
    ON  T1.CO_EMPR = T3.CO_EMPR      
 And T1.CO_MONE = T3.CO_MONE       
 GROUP BY T1.CO_EMPR, T1.CO_MONE      
 UNION ALL      
 SELECT T1.CO_EMPR, '', '', '',        
  T1.CO_MONE, MAX(T5.SB_MONE), MAX(T5.DE_MONE), ISNULL( SUM(T1.IM_SAIN), 0 ),       
  0, 0, '2', '1'        
 FROM #TWDOCU_PROV_Q32_2 T1, TTMONE T5      
 Where T1.CO_MONE = T5.CO_MONE       
 AND NOT EXISTS (SELECT T3.CO_PROV      
   FROM #TWDOCU_PROV_Q32_1 T3      
   WHERE T1.CO_EMPR = T3.CO_EMPR      
   And T1.CO_MONE = T3.CO_MONE )      
 GROUP BY T1.CO_EMPR, T1.CO_MONE      
 UNION ALL      
 SELECT MAX(T1.CO_EMPR), '', '', '',       
  T1.CO_MONE, MAX(T5.SB_MONE), MAX(T5.DE_MONE), ISNULL(MAX(T3.IM_SAIN), 0),       
  SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), '2', '2'      
 FROM #TWDOCU_PROV_Q32_1 T1      
    INNER JOIN TTMONE T5      
    ON T1.CO_MONE = T5.CO_MONE       
    LEFT OUTER JOIN  (SELECT CO_MONE, SUM(IM_SAIN) IM_SAIN      
      FROM #TWDOCU_PROV_Q32_2       
      GROUP BY CO_MONE)T3      
    ON T1.CO_MONE = T3.CO_MONE       
 GROUP BY T1.CO_MONE       
 UNION ALL      
 SELECT MAX(T1.CO_EMPR), '', '', '',       
  T1.CO_MONE, MAX(T5.SB_MONE), MAX(T5.DE_MONE), ISNULL( SUM(T1.IM_SAIN), 0 ),       
  0, 0, '2', '2'        
 FROM #TWDOCU_PROV_Q32_2 T1, TTMONE T5      
 Where T1.CO_MONE = T5.CO_MONE       
 AND NOT EXISTS (SELECT T3.CO_PROV      
   FROM #TWDOCU_PROV_Q32_1 T3      
   WHERE T1.CO_MONE = T3.CO_MONE )      
 GROUP BY T1.CO_MONE    
 ORDER BY 12, 1, 11, 4, 5      
      
END      
      
RETURN      
/*------------------------- FIN ------------------------------ */  

GO
